//package com.shh.shojbackendcommon.config;
//
//import io.github.resilience4j.ratelimiter.RateLimiter;
//import io.github.resilience4j.ratelimiter.RateLimiterConfig;
//import io.github.resilience4j.ratelimiter.RateLimiterRegistry;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//
//import java.time.Duration;
//
///**
// * 服务降级配置 防止用户无限提交请求
// */
//@Configuration
//@Deprecated
//public class RateLimitConfig {
//
//    /**
//     * 配置速率限制器 防止用户频繁提交表单
//     * @return
//     */
//    @Bean
//    public RateLimiterRegistry rateLimiterRegistry() {
//        //创建一个新的 RateLimiterRegistry 实例
//        return RateLimiterRegistry.of(
//                //开始构建一个自定义的速率限制器配置
//                RateLimiterConfig.custom()
//                        //设置限流器的刷新周期为3秒
//                        .limitRefreshPeriod(Duration.ofSeconds(3))
//                        //设置每个刷新周期内允许的请求数量为1
//                        .limitForPeriod(1)
//                        //设置获取许可的等待时间为0  如果设置为正数(如Duration.ofMillis(500))，线程会等待指定时间尝试获取许可
//                        .timeoutDuration(Duration.ZERO) // 不等待
//                        .build()
//        );
//    }
//
//    /**
//     * 从注册表中获取或创建一个名为 "apiRateLimiter" 的 RateLimiter 实例
//     * 如果这个名字的限流器不存在，会使用注册表中的默认配置创建一个新的
//     * 如果已存在，则返回现有的实例
//     * @param registry
//     * @return
//     */
//    @Bean
//    public RateLimiter rateLimiter(RateLimiterRegistry registry) {
//        return registry.rateLimiter("apiRateLimiter");
//    }
//}
